{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Third Harmonic Generation"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In this example, we consider wave propagation through a simple 1d nonlinear medium with a non-zero Kerr susceptibility $\\chi^{(3)}$. See also [Materials](https://meep.readthedocs.io/en/latest/Materials/#nonlinearity) and [Units and Nonlinearity](https://meep.readthedocs.io/en/latest/Units_and_Nonlinearity/). We send in a narrow-band pulse at a frequency $\\omega$, and because of the nonlinearity we also get a signal at a frequency $3\\omega$.\n",
    "\n",
    "Since this is a 1d calculation, we could implement it via a 2d cell of `Vector3(S,0,0)`, specifying periodic boundary conditions in the $y$ direction. However, this is slightly inefficient since the $y$ periodic boundaries are implemented internally via extra \"ghost pixels\" in the $y$ direction. Instead, Meep has special support for 1d simulations in the $z$ direction. To use this, we must explicitly set `dimensions` to 1 in the `Simulation` object constructor, and in that case we can only use $E_x$ (and $D_x$) and $H_y$ field components. This involves no loss of generality because of the symmetry of the problem.\n",
    "\n",
    "We are going to fill the entire computational cell with the nonlinear medium, so we don't need to use any objects. We can just use the special `default_material` which is ordinarily vacuum. PMLs are placed at the $\\pm 1$ boundaries. The source will be a Gaussian pulse of $J_x$ just next to the $-z$ PML layer. Since this is a nonlinear calculation, we may want to play with the amplitude of the current/field, so we set the `amplitude` property explicitly to a parameter `amp`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Using MPI version 3.1, 1 processes\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Invalid MIT-MAGIC-COOKIE-1 key"
     ]
    }
   ],
   "source": [
    "from typing import Tuple, List, Union\n",
    "import numpy as np\n",
    "from matplotlib import pyplot as plt\n",
    "import meep as mp"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "def third_harmonic_generation(\n",
    "    k: float, amp: float = 1.0, nfreq: int = 10, flux_spectrum: bool = True\n",
    ") -> Union[Tuple[List[float], List[float]], Tuple[float, float]]:\n",
    "    \n",
    "    \"\"\"Computes the transmission spectrum of a plane wave propagating                                             \n",
    "       through a Kerr medium.                                                                                     \n",
    "                                                                                                                  \n",
    "    Args:                                                                                                         \n",
    "      k: strength of Kerr susceptibility.                                                                         \n",
    "      amp: amplitude of the incident planewave.                                                                   \n",
    "      nfreq: number of frequencies in flux spectrum.                                                              \n",
    "      flux_spectrum: compute the flux spectrum over broad bandwidth (True) or                                     \n",
    "                     just the two harmonic frequencies ω and 3ω (False).                                          \n",
    "                                                                                                                  \n",
    "    Returns:                                                                                                      \n",
    "      The frequencies and transmitted flux over the flux spectrum or                                              \n",
    "      the transmitted flux at the harmonic frequencies ω and 3ω.                                                  \n",
    "    \"\"\"\n",
    "    \n",
    "    sz = 100  # size of cell in z direction                                                                       \n",
    "    fcen = 1 / 3.0  # center frequency of source                                                                  \n",
    "    df = fcen / 20.0  # frequency width of source                                                                 \n",
    "    dpml = 1.0  # PML thickness                                                                                   \n",
    "                                                                   \n",
    "    dimensions = 1\n",
    "    cell = mp.Vector3(0, 0, sz)\n",
    "    pml_layers = [mp.PML(dpml)]\n",
    "    resolution = 25\n",
    "                                                                \n",
    "    default_material = mp.Medium(index=1, chi3=k)\n",
    "\n",
    "    sources = [\n",
    "        mp.Source(\n",
    "            mp.GaussianSource(fcen, fwidth=df),\n",
    "            component=mp.Ex,\n",
    "            center=mp.Vector3(0, 0, -0.5 * sz + dpml),\n",
    "            amplitude=amp,\n",
    "        )\n",
    "    ]\n",
    "\n",
    "    # frequency range for flux calculation                                                                        \n",
    "    fmin = fcen / 2.0\n",
    "    fmax = fcen * 4\n",
    "\n",
    "    sim = mp.Simulation(\n",
    "        cell_size=cell,\n",
    "        sources=sources,\n",
    "        boundary_layers=pml_layers,\n",
    "        default_material=default_material,\n",
    "        resolution=resolution,\n",
    "        dimensions=dimensions,\n",
    "    )\n",
    "\n",
    "    mon_pt = mp.Vector3(0, 0, 0.5 * sz - dpml - 0.5)\n",
    "    \n",
    "    if flux_spectrum:\n",
    "        trans = sim.add_flux(\n",
    "            0.5 * (fmin + fmax),\n",
    "            fmax - fmin,\n",
    "            nfreq,\n",
    "            mp.FluxRegion(mon_pt),\n",
    "        )\n",
    "    else:\n",
    "        trans1 = sim.add_flux(fcen, 0, 1, mp.FluxRegion(mon_pt))\n",
    "        trans3 = sim.add_flux(\n",
    "            3 * fcen, 0, 1, mp.FluxRegion(mon_pt)\n",
    "        )\n",
    "\n",
    "    sim.run(until_after_sources=mp.stop_when_fields_decayed(50, mp.Ex, mon_pt, 1e-6))\n",
    "\n",
    "    if flux_spectrum:\n",
    "        freqs = mp.get_flux_freqs(trans)\n",
    "        trans_flux = mp.get_fluxes(trans)\n",
    "        return freqs, trans_flux\n",
    "    else:\n",
    "        print(\n",
    "            f\"harmonics:, {k}, {amp}, {mp.get_fluxes(trans1)[0]}, \"\n",
    "            f\"{mp.get_fluxes(trans3)[0]}\"\n",
    "        )\n",
    "        return mp.get_fluxes(trans1)[0], mp.get_fluxes(trans3)[0]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Note DFT decimation is turned off by default whenever nonlinearities are present.\n",
    "\n",
    "In the first part of this tutorial, we plot the transmitted power spectrum for various values of $\\chi^{(3)}$. In a linear problem, we normally look at the spectrum over the same frequency range as our source, because other frequencies are zero. In this case, however, we will look from `fcen/2` to `4*fcen`, to be sure that we can see the third-harmonic frequency."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-----------\n",
      "Initializing structure...\n",
      "time for choose_chunkdivision = 0.000160748 s\n",
      "Working in 1D dimensions.\n",
      "Computational cell is 0 x 0 x 100 with resolution 25\n",
      "time for set_epsilon = 0.00186399 s\n",
      "-----------\n",
      "field decay(t = 100.04): 5.345069974777698e-12 / 5.345069974777698e-12 = 1.0\n",
      "field decay(t = 150.06): 1.0169446296713276e-08 / 1.0169446296713276e-08 = 1.0\n",
      "field decay(t = 200.08): 4.650911893321058e-06 / 4.650911893321058e-06 = 1.0\n",
      "field decay(t = 250.1): 0.0005451205008237801 / 0.0005451205008237801 = 1.0\n",
      "field decay(t = 300.12): 0.01777078053576906 / 0.01777078053576906 = 1.0\n",
      "field decay(t = 350.14): 0.13039636481724018 / 0.13039636481724018 = 1.0\n",
      "field decay(t = 400.16): 0.24555052973214989 / 0.24555052973214989 = 1.0\n",
      "field decay(t = 450.18): 0.24496560125506897 / 0.24555052973214989 = 0.9976178895736085\n",
      "field decay(t = 500.2): 0.11044114777393739 / 0.24555052973214989 = 0.4497695358035196\n",
      "field decay(t = 550.22): 0.012780456545355666 / 0.24555052973214989 = 0.052048173381245705\n",
      "field decay(t = 600.24): 0.00037674024813005836 / 0.24555052973214989 = 0.0015342677066956937\n",
      "field decay(t = 650.26): 2.4030087682351996e-06 / 0.24555052973214989 = 9.786208854268963e-06\n",
      "field decay(t = 700.28): 4.467052624211472e-09 / 0.24555052973214989 = 1.8191989359926036e-08\n",
      "run 0 finished at t = 700.28 (35014 timesteps)\n",
      "-----------\n",
      "Initializing structure...\n",
      "time for choose_chunkdivision = 8.3215e-05 s\n",
      "Working in 1D dimensions.\n",
      "Computational cell is 0 x 0 x 100 with resolution 25\n",
      "time for set_epsilon = 0.000742635 s\n",
      "-----------\n",
      "field decay(t = 100.04): 5.345069974770661e-12 / 5.345069974770661e-12 = 1.0\n",
      "field decay(t = 150.06): 1.0169446225969908e-08 / 1.0169446225969908e-08 = 1.0\n",
      "field decay(t = 200.08): 4.650898281484011e-06 / 4.650898281484011e-06 = 1.0\n",
      "field decay(t = 250.1): 0.000544949642624633 / 0.000544949642624633 = 1.0\n",
      "field decay(t = 300.12): 0.017569355547691595 / 0.017569355547691595 = 1.0\n",
      "field decay(t = 350.14): 0.12281472609090456 / 0.12281472609090456 = 1.0\n",
      "field decay(t = 400.16): 0.22531439709826295 / 0.22531439709826295 = 1.0\n",
      "field decay(t = 450.18): 0.22482927464433763 / 0.22531439709826295 = 0.9978469087631637\n",
      "field decay(t = 500.2): 0.1079829572060197 / 0.22531439709826295 = 0.47925458202711624\n",
      "field decay(t = 550.22): 0.01266950106036936 / 0.22531439709826295 = 0.05623032182379363\n",
      "field decay(t = 600.24): 0.00037665107710744167 / 0.22531439709826295 = 0.0016716689299848804\n",
      "field decay(t = 650.26): 2.403005349498868e-06 / 0.22531439709826295 = 1.0665121183760316e-05\n",
      "field decay(t = 700.28): 4.467048459368641e-09 / 0.22531439709826295 = 1.982584564900438e-08\n",
      "run 0 finished at t = 700.28 (35014 timesteps)\n",
      "-----------\n",
      "Initializing structure...\n",
      "time for choose_chunkdivision = 8.3803e-05 s\n",
      "Working in 1D dimensions.\n",
      "Computational cell is 0 x 0 x 100 with resolution 25\n",
      "time for set_epsilon = 0.000510164 s\n",
      "-----------\n",
      "field decay(t = 100.04): 5.345069974700306e-12 / 5.345069974700306e-12 = 1.0\n",
      "field decay(t = 150.06): 1.0169445518535415e-08 / 1.0169445518535415e-08 = 1.0\n",
      "field decay(t = 200.08): 4.650762120863413e-06 / 4.650762120863413e-06 = 1.0\n",
      "field decay(t = 250.1): 0.0005431713534528096 / 0.0005431713534528096 = 1.0\n",
      "field decay(t = 300.12): 0.015624179670709025 / 0.015624179670709025 = 1.0\n",
      "field decay(t = 350.14): 0.10193257677430007 / 0.10193257677430007 = 1.0\n",
      "field decay(t = 400.16): 0.23169084040266913 / 0.23169084040266913 = 1.0\n",
      "field decay(t = 450.18): 0.23240467775624984 / 0.23240467775624984 = 1.0\n",
      "field decay(t = 500.2): 0.10222488043703631 / 0.23240467775624984 = 0.4398572413600538\n",
      "field decay(t = 550.22): 0.011956286799054389 / 0.23240467775624984 = 0.05144598170091204\n",
      "field decay(t = 600.24): 0.0003757367393708341 / 0.23240467775624984 = 0.0016167348394119394\n",
      "field decay(t = 650.26): 2.4029564352000626e-06 / 0.23240467775624984 = 1.0339535582499446e-05\n",
      "field decay(t = 700.28): 4.4672075082859265e-09 / 0.23240467775624984 = 1.922167639401481e-08\n",
      "run 0 finished at t = 700.28 (35014 timesteps)\n",
      "-----------\n",
      "Initializing structure...\n",
      "time for choose_chunkdivision = 8.8819e-05 s\n",
      "Working in 1D dimensions.\n",
      "Computational cell is 0 x 0 x 100 with resolution 25\n",
      "time for set_epsilon = 0.000489019 s\n",
      "-----------\n",
      "field decay(t = 100.04): 5.34506997399672e-12 / 5.34506997399672e-12 = 1.0\n",
      "field decay(t = 150.06): 1.016943844414871e-08 / 1.016943844414871e-08 = 1.0\n",
      "field decay(t = 200.08): 4.649396296768624e-06 / 4.649396296768624e-06 = 1.0\n",
      "field decay(t = 250.1): 0.0005265865745042597 / 0.0005265865745042597 = 1.0\n",
      "field decay(t = 300.12): 0.012482616165581724 / 0.012482616165581724 = 1.0\n",
      "field decay(t = 350.14): 0.07675630058831354 / 0.07675630058831354 = 1.0\n",
      "field decay(t = 400.16): 0.18425111874447336 / 0.18425111874447336 = 1.0\n",
      "field decay(t = 450.18): 0.20611275967726259 / 0.20611275967726259 = 1.0\n",
      "field decay(t = 500.2): 0.17353357688171306 / 0.20611275967726259 = 0.8419351482821201\n",
      "field decay(t = 550.22): 0.012903286335997464 / 0.20611275967726259 = 0.0626030448391541\n",
      "field decay(t = 600.24): 0.00037570222684038757 / 0.20611275967726259 = 0.0018227994590372433\n",
      "field decay(t = 650.26): 2.559656367429923e-06 / 0.20611275967726259 = 1.2418718624882361e-05\n",
      "field decay(t = 700.28): 5.088653499594899e-09 / 0.20611275967726259 = 2.4688687432854045e-08\n",
      "run 0 finished at t = 700.28 (35014 timesteps)\n"
     ]
    }
   ],
   "source": [
    "nfreq = 400\n",
    "logk = range(-3, 1)\n",
    "tflux = np.zeros((nfreq, len(logk)))\n",
    "for i, lk in enumerate(logk):\n",
    "    freqs, tflux[:, i] = third_harmonic_generation(\n",
    "        10**lk, nfreq=nfreq, flux_spectrum=True\n",
    "    )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/oskooi/.local/lib/python3.8/site-packages/numpy/core/getlimits.py:500: UserWarning: The value of the smallest subnormal for <class 'numpy.float64'> type is zero.\n",
      "  setattr(self, word, getattr(machar, word).flat[0])\n",
      "/home/oskooi/.local/lib/python3.8/site-packages/numpy/core/getlimits.py:89: UserWarning: The value of the smallest subnormal for <class 'numpy.float64'> type is zero.\n",
      "  return self._float_to_str(self.smallest_subnormal)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots()\n",
    "ax.semilogy(freqs, tflux[:, 0], \"bo-\", label=r\"$\\chi^{(3)}$=0.001\")\n",
    "ax.semilogy(freqs, tflux[:, 1], \"ro-\", label=r\"$\\chi^{(3)}$=0.01\")\n",
    "ax.semilogy(freqs, tflux[:, 2], \"go-\", label=r\"$\\chi^{(3)}$=0.1\")\n",
    "ax.semilogy(freqs, tflux[:, 3], \"co-\", label=r\"$\\chi^{(3)}$=1\")\n",
    "ax.set_xlabel(\"frequency\")\n",
    "ax.set_ylabel(\"transmitted power (a.u.)\")\n",
    "ax.set_xlim(0.2, 1.2)\n",
    "ax.set_ylim(1e-15, 1e2)\n",
    "ax.legend()\n",
    "ax.grid(True)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For small values of $\\chi^{(3)}$, we see a peak from our source at $\\omega=\\frac{1}{3}$ and another peak \n",
    "precisely at the third-harmonic frequency $3\\omega=1$. As the $\\chi^{(3)}$ gets larger, frequency-mixing \n",
    "*within* the peaks causes them to broaden, and finally for $\\chi^{(3)}=1$ we start to see a noisy, broad-spectrum \n",
    "transmission due to the phenomenon of **modulation instability**. Notice also that at around $10^{-13}$ the \n",
    "data looks weird; this is probably due to our finite simulation time, imperfect absorbing boundaries, etcetera. \n",
    "We haven't attempted to analyze it in detail for this case.\n",
    "\n",
    "In the second part of the tutorial, we investigate the dependence of the power at $\\omega$ and $3\\omega$ as a  function of $\\chi^{(3)}$ and the current amplitude. We could, of course, interpolate the flux spectrum above to get the desired frequencies, but it is easier just to add two flux regions to Meep and request exactly the desired frequency components."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-----------\n",
      "Initializing structure...\n",
      "time for choose_chunkdivision = 7.5685e-05 s\n",
      "Working in 1D dimensions.\n",
      "Computational cell is 0 x 0 x 100 with resolution 25\n",
      "time for set_epsilon = 0.000831275 s\n",
      "-----------\n",
      "field decay(t = 100.04): 5.345069974778501e-12 / 5.345069974778501e-12 = 1.0\n",
      "field decay(t = 150.06): 1.0169446304565756e-08 / 1.0169446304565756e-08 = 1.0\n",
      "field decay(t = 200.08): 4.6509134041875294e-06 / 4.6509134041875294e-06 = 1.0\n",
      "field decay(t = 250.1): 0.0005451393864268183 / 0.0005451393864268183 = 1.0\n",
      "field decay(t = 300.12): 0.01779607955736104 / 0.01779607955736104 = 1.0\n",
      "field decay(t = 350.14): 0.13167020369297935 / 0.13167020369297935 = 1.0\n",
      "field decay(t = 400.16): 0.24987915109109593 / 0.24987915109109593 = 1.0\n",
      "field decay(t = 450.18): 0.2492659288871275 / 0.24987915109109593 = 0.9975459248949311\n",
      "field decay(t = 500.2): 0.11135321997058951 / 0.24987915109109593 = 0.44562829465510145\n",
      "field decay(t = 550.22): 0.012792973351210858 / 0.24987915109109593 = 0.051196641637969435\n",
      "field decay(t = 600.24): 0.00037675013914112524 / 0.24987915109109593 = 0.0015077293863695624\n",
      "field decay(t = 650.26): 2.4030142102446377e-06 / 0.24987915109109593 = 9.616705514453244e-06\n",
      "field decay(t = 700.28): 4.46711423590339e-09 / 0.24987915109109593 = 1.7877098655080908e-08\n",
      "run 0 finished at t = 700.28 (35014 timesteps)\n",
      "harmonics:, 1e-06, 1.0, 225.16443832253304, 2.515333788184986e-08\n",
      "-----------\n",
      "Initializing structure...\n",
      "time for choose_chunkdivision = 0.000133811 s\n",
      "Working in 1D dimensions.\n",
      "Computational cell is 0 x 0 x 100 with resolution 25\n",
      "time for set_epsilon = 0.000910593 s\n",
      "-----------\n",
      "field decay(t = 100.04): 5.345069974778501e-12 / 5.345069974778501e-12 = 1.0\n",
      "field decay(t = 150.06): 1.0169446304561077e-08 / 1.0169446304561077e-08 = 1.0\n",
      "field decay(t = 200.08): 4.650913403302946e-06 / 4.650913403302946e-06 = 1.0\n",
      "field decay(t = 250.1): 0.0005451393753743672 / 0.0005451393753743672 = 1.0\n",
      "field decay(t = 300.12): 0.017796064890280856 / 0.017796064890280856 = 1.0\n",
      "field decay(t = 350.14): 0.13166946381281386 / 0.13166946381281386 = 1.0\n",
      "field decay(t = 400.16): 0.24987671044152449 / 0.24987671044152449 = 1.0\n",
      "field decay(t = 450.18): 0.24926351430698057 / 0.24987671044152449 = 0.9975460052541094\n",
      "field decay(t = 500.2): 0.11135262363861735 / 0.24987671044152449 = 0.44563026078685236\n",
      "field decay(t = 550.22): 0.012792966079088641 / 0.24987671044152449 = 0.0511971125939823\n",
      "field decay(t = 600.24): 0.0003767501333900365 / 0.24987671044152449 = 0.0015077440899727334\n",
      "field decay(t = 650.26): 2.403014206912613e-06 / 0.24987671044152449 = 9.616799431473868e-06\n",
      "field decay(t = 700.28): 4.467114140778479e-09 / 0.24987671044152449 = 1.7877272887438072e-08\n",
      "run 0 finished at t = 700.28 (35014 timesteps)\n",
      "harmonics:, 1.584893192461114e-06, 1.0, 225.1644324606108, 6.31859653887594e-08\n",
      "-----------\n",
      "Initializing structure...\n",
      "time for choose_chunkdivision = 8.0435e-05 s\n",
      "Working in 1D dimensions.\n",
      "Computational cell is 0 x 0 x 100 with resolution 25\n",
      "time for set_epsilon = 0.000749297 s\n",
      "-----------\n",
      "field decay(t = 100.04): 5.345069974778501e-12 / 5.345069974778501e-12 = 1.0\n",
      "field decay(t = 150.06): 1.0169446304553853e-08 / 1.0169446304553853e-08 = 1.0\n",
      "field decay(t = 200.08): 4.65091340190097e-06 / 4.65091340190097e-06 = 1.0\n",
      "field decay(t = 250.1): 0.0005451393578573992 / 0.0005451393578573992 = 1.0\n",
      "field decay(t = 300.12): 0.01779604164417494 / 0.01779604164417494 = 1.0\n",
      "field decay(t = 350.14): 0.1316682910328865 / 0.1316682910328865 = 1.0\n",
      "field decay(t = 400.16): 0.2498728412092159 / 0.2498728412092159 = 1.0\n",
      "field decay(t = 450.18): 0.24925968639689838 / 0.2498728412092159 = 0.9975461326274986\n",
      "field decay(t = 500.2): 0.11135167843143928 / 0.2498728412092159 = 0.44563337853194573\n",
      "field decay(t = 550.22): 0.012792954553416579 / 0.2498728412092159 = 0.05119785924515571\n",
      "field decay(t = 600.24): 0.0003767501242750534 / 0.2498728412092159 = 0.0015077674006179985\n",
      "field decay(t = 650.26): 2.403014201626535e-06 / 0.2498728412092159 = 9.616948324586089e-06\n",
      "field decay(t = 700.28): 4.4671139901279e-09 / 0.2498728412092159 = 1.787754911061996e-08\n",
      "run 0 finished at t = 700.28 (35014 timesteps)\n",
      "harmonics:, 2.5118864315095823e-06, 1.0, 225.16442310949893, 1.5872094484029593e-07\n",
      "-----------\n",
      "Initializing structure...\n",
      "time for choose_chunkdivision = 8.1018e-05 s\n",
      "Working in 1D dimensions.\n",
      "Computational cell is 0 x 0 x 100 with resolution 25\n",
      "time for set_epsilon = 0.000894799 s\n",
      "-----------\n",
      "field decay(t = 100.04): 5.345069974778501e-12 / 5.345069974778501e-12 = 1.0\n",
      "field decay(t = 150.06): 1.0169446304542361e-08 / 1.0169446304542361e-08 = 1.0\n",
      "field decay(t = 200.08): 4.650913399679016e-06 / 4.650913399679016e-06 = 1.0\n",
      "field decay(t = 250.1): 0.0005451393300948496 / 0.0005451393300948496 = 1.0\n",
      "field decay(t = 300.12): 0.01779600480070021 / 0.01779600480070021 = 1.0\n",
      "field decay(t = 350.14): 0.13166643192801916 / 0.13166643192801916 = 1.0\n",
      "field decay(t = 400.16): 0.24986670621877566 / 0.24986670621877566 = 1.0\n",
      "field decay(t = 450.18): 0.24925361691027295 / 0.24986670621877566 = 0.9975463345325971\n",
      "field decay(t = 500.2): 0.11135018016629872 / 0.24986670621877566 = 0.44563832393421754\n",
      "field decay(t = 550.22): 0.012792936286116477 / 0.24986670621877566 = 0.05119904320071908\n",
      "field decay(t = 600.24): 0.0003767501098285919 / 0.24986670621877566 = 0.001507804363093981\n",
      "field decay(t = 650.26): 2.403014193244504e-06 / 0.24986670621877566 = 9.617184416480433e-06\n",
      "field decay(t = 700.28): 4.467113751670654e-09 / 0.24986670621877566 = 1.787798710469007e-08\n",
      "run 0 finished at t = 700.28 (35014 timesteps)\n",
      "harmonics:, 3.981071705534978e-06, 1.0, 225.16440813678386, 3.9869373079802405e-07\n",
      "-----------\n",
      "Initializing structure...\n",
      "time for choose_chunkdivision = 7.4266e-05 s\n",
      "Working in 1D dimensions.\n",
      "Computational cell is 0 x 0 x 100 with resolution 25\n",
      "time for set_epsilon = 0.000497459 s\n",
      "-----------\n",
      "field decay(t = 100.04): 5.345069974778481e-12 / 5.345069974778481e-12 = 1.0\n",
      "field decay(t = 150.06): 1.0169446304524124e-08 / 1.0169446304524124e-08 = 1.0\n",
      "field decay(t = 200.08): 4.650913396157464e-06 / 4.650913396157464e-06 = 1.0\n",
      "field decay(t = 250.1): 0.0005451392860940994 / 0.0005451392860940994 = 1.0\n",
      "field decay(t = 300.12): 0.017795946405517928 / 0.017795946405517928 = 1.0\n",
      "field decay(t = 350.14): 0.13166348450628076 / 0.13166348450628076 = 1.0\n",
      "field decay(t = 400.16): 0.24985697620899291 / 0.24985697620899291 = 1.0\n",
      "field decay(t = 450.18): 0.24924399074840453 / 0.24985697620899291 = 0.9975466546106135\n",
      "field decay(t = 500.2): 0.11134780504186298 / 0.24985697620899291 = 0.4456461721874281\n",
      "field decay(t = 550.22): 0.012792907333542469 / 0.24985697620899291 = 0.05120092113354417\n",
      "field decay(t = 600.24): 0.00037675008693193487 / 0.24985697620899291 = 0.001507862988851679\n",
      "field decay(t = 650.26): 2.403014179950846e-06 / 0.24985697620899291 = 9.617558878727662e-06\n",
      "field decay(t = 700.28): 4.467113374285032e-09 / 0.24985697620899291 = 1.7878681804539708e-08\n",
      "run 0 finished at t = 700.28 (35014 timesteps)\n",
      "harmonics:, 6.309573444801943e-06, 1.0, 225.16438402434432, 1.0014683697174824e-06\n",
      "-----------\n",
      "Initializing structure...\n",
      "time for choose_chunkdivision = 7.3466e-05 s\n",
      "Working in 1D dimensions.\n",
      "Computational cell is 0 x 0 x 100 with resolution 25\n",
      "time for set_epsilon = 0.00130423 s\n",
      "-----------\n",
      "field decay(t = 100.04): 5.345069974778434e-12 / 5.345069974778434e-12 = 1.0\n",
      "field decay(t = 150.06): 1.0169446304495113e-08 / 1.0169446304495113e-08 = 1.0\n",
      "field decay(t = 200.08): 4.6509133905761386e-06 / 4.6509133905761386e-06 = 1.0\n",
      "field decay(t = 250.1): 0.0005451392163574408 / 0.0005451392163574408 = 1.0\n",
      "field decay(t = 300.12): 0.017795853849839657 / 0.017795853849839657 = 1.0\n",
      "field decay(t = 350.14): 0.13165881079960295 / 0.13165881079960295 = 1.0\n",
      "field decay(t = 400.16): 0.24984153835108858 / 0.24984153835108858 = 1.0\n",
      "field decay(t = 450.18): 0.24922871755702478 / 0.24984153835108858 = 0.9975471621007928\n",
      "field decay(t = 500.2): 0.11134403938185904 / 0.24984153835108858 = 0.4456586367371521\n",
      "field decay(t = 550.22): 0.012792861444657525 / 0.24984153835108858 = 0.051203901197087655\n",
      "field decay(t = 600.24): 0.00037675005064174207 / 0.24984153835108858 = 0.0015079560153536836\n",
      "field decay(t = 650.26): 2.403014158847725e-06 / 0.24984153835108858 = 9.618153068970066e-06\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "field decay(t = 700.28): 4.467112777638655e-09 / 0.24984153835108858 = 1.787978415086953e-08\n",
      "run 0 finished at t = 700.28 (35014 timesteps)\n",
      "harmonics:, 1.0000000000000021e-05, 1.0, 225.16434484850555, 2.515516990517998e-06\n",
      "-----------\n",
      "Initializing structure...\n",
      "time for choose_chunkdivision = 7.2692e-05 s\n",
      "Working in 1D dimensions.\n",
      "Computational cell is 0 x 0 x 100 with resolution 25\n",
      "time for set_epsilon = 0.00131563 s\n",
      "-----------\n",
      "field decay(t = 100.04): 5.345069974778606e-12 / 5.345069974778606e-12 = 1.0\n",
      "field decay(t = 150.06): 1.0169446304449148e-08 / 1.0169446304449148e-08 = 1.0\n",
      "field decay(t = 200.08): 4.650913381730357e-06 / 4.650913381730357e-06 = 1.0\n",
      "field decay(t = 250.1): 0.000545139105831829 / 0.000545139105831829 = 1.0\n",
      "field decay(t = 300.12): 0.017795707145032064 / 0.017795707145032064 = 1.0\n",
      "field decay(t = 350.14): 0.13165139755400873 / 0.13165139755400873 = 1.0\n",
      "field decay(t = 400.16): 0.24981702876003392 / 0.24981702876003392 = 1.0\n",
      "field decay(t = 450.18): 0.24920446914199645 / 0.24981702876003392 = 0.9975479669217191\n",
      "field decay(t = 500.2): 0.11133806784509068 / 0.24981702876003392 = 0.4456784567397861\n",
      "field decay(t = 550.22): 0.012792788710282837 / 0.24981702876003392 = 0.051208633669929574\n",
      "field decay(t = 600.24): 0.00037674999312210095 / 0.24981702876003392 = 0.0015081037309269845\n",
      "field decay(t = 650.26): 2.4030141253284044e-06 / 0.24981702876003392 = 9.619096573423189e-06\n",
      "field decay(t = 700.28): 4.4671118357517325e-09 / 0.24981702876003392 = 1.7881534569217434e-08\n",
      "run 0 finished at t = 700.28 (35014 timesteps)\n",
      "harmonics:, 1.5848931924611175e-05, 1.0, 225.16428034734233, 6.318402461852015e-06\n",
      "-----------\n",
      "Initializing structure...\n",
      "time for choose_chunkdivision = 7.5182e-05 s\n",
      "Working in 1D dimensions.\n",
      "Computational cell is 0 x 0 x 100 with resolution 25\n",
      "time for set_epsilon = 0.000671585 s\n",
      "-----------\n",
      "field decay(t = 100.04): 5.3450699747784145e-12 / 5.3450699747784145e-12 = 1.0\n",
      "field decay(t = 150.06): 1.0169446304376287e-08 / 1.0169446304376287e-08 = 1.0\n",
      "field decay(t = 200.08): 4.650913367710779e-06 / 4.650913367710779e-06 = 1.0\n",
      "field decay(t = 250.1): 0.0005451389306594265 / 0.0005451389306594265 = 1.0\n",
      "field decay(t = 300.12): 0.017795474598562566 / 0.017795474598562566 = 1.0\n",
      "field decay(t = 350.14): 0.13163963349549604 / 0.13163963349549604 = 1.0\n",
      "field decay(t = 400.16): 0.249778077761204 / 0.249778077761204 = 1.0\n",
      "field decay(t = 450.18): 0.24916593257277922 / 0.249778077761204 = 0.9975492437370344\n",
      "field decay(t = 500.2): 0.11132859514426717 / 0.249778077761204 = 0.44571003245008933\n",
      "field decay(t = 550.22): 0.012792673420521304 / 0.249778077761204 = 0.05121615769960212\n",
      "field decay(t = 600.24): 0.00037674990195060124 / 0.249778077761204 = 0.0015083385432679423\n",
      "field decay(t = 650.26): 2.403014072018808e-06 / 0.249778077761204 = 9.620596385228682e-06\n",
      "field decay(t = 700.28): 4.467110352557797e-09 / 0.249778077761204 = 1.7884317121010517e-08\n",
      "run 0 finished at t = 700.28 (35014 timesteps)\n",
      "harmonics:, 2.5118864315095873e-05, 1.0, 225.1641720631706, 1.5869855336798398e-05\n",
      "-----------\n",
      "Initializing structure...\n",
      "time for choose_chunkdivision = 0.00018664 s\n",
      "Working in 1D dimensions.\n",
      "Computational cell is 0 x 0 x 100 with resolution 25\n",
      "time for set_epsilon = 0.00048743 s\n",
      "-----------\n",
      "field decay(t = 100.04): 5.345069974778471e-12 / 5.345069974778471e-12 = 1.0\n",
      "field decay(t = 150.06): 1.0169446304260835e-08 / 1.0169446304260835e-08 = 1.0\n",
      "field decay(t = 200.08): 4.650913345491174e-06 / 4.650913345491174e-06 = 1.0\n",
      "field decay(t = 250.1): 0.0005451386530270641 / 0.0005451386530270641 = 1.0\n",
      "field decay(t = 300.12): 0.017795105949300605 / 0.017795105949300605 = 1.0\n",
      "field decay(t = 350.14): 0.131620951456545 / 0.131620951456545 = 1.0\n",
      "field decay(t = 400.16): 0.2497160792387384 / 0.2497160792387384 = 1.0\n",
      "field decay(t = 450.18): 0.24910459210960362 / 0.2497160792387384 = 0.997551270502889\n",
      "field decay(t = 500.2): 0.11131356071984909 / 0.2497160792387384 = 0.44576048550493597\n",
      "field decay(t = 550.22): 0.012792490664539549 / 0.2497160792387384 = 0.051228141589991186\n",
      "field decay(t = 600.24): 0.0003767497574307566 / 0.2497160792387384 = 0.0015087124488710596\n",
      "field decay(t = 650.26): 2.4030139870786908e-06 / 0.2497160792387384 = 9.622984608777694e-06\n",
      "field decay(t = 700.28): 4.467108026452184e-09 / 0.2497160792387384 = 1.7888748053670394e-08\n",
      "run 0 finished at t = 700.28 (35014 timesteps)\n",
      "harmonics:, 3.981071705534986e-05, 1.0, 225.16398523472878, 3.985811606969678e-05\n",
      "-----------\n",
      "Initializing structure...\n",
      "time for choose_chunkdivision = 7.3665e-05 s\n",
      "Working in 1D dimensions.\n",
      "Computational cell is 0 x 0 x 100 with resolution 25\n",
      "time for set_epsilon = 0.000969299 s\n",
      "-----------\n",
      "field decay(t = 100.04): 5.3450699747784185e-12 / 5.3450699747784185e-12 = 1.0\n",
      "field decay(t = 150.06): 1.0169446304077684e-08 / 1.0169446304077684e-08 = 1.0\n",
      "field decay(t = 200.08): 4.6509133102755144e-06 / 4.6509133102755144e-06 = 1.0\n",
      "field decay(t = 250.1): 0.0005451382130023534 / 0.0005451382130023534 = 1.0\n",
      "field decay(t = 300.12): 0.017794521458758514 / 0.017794521458758514 = 1.0\n",
      "field decay(t = 350.14): 0.1315912490352465 / 0.1315912490352465 = 1.0\n",
      "field decay(t = 400.16): 0.2496171544429268 / 0.2496171544429268 = 1.0\n",
      "field decay(t = 450.18): 0.2490067133358019 / 0.2496171544429268 = 0.9975544905618077\n",
      "field decay(t = 500.2): 0.11128967960573347 / 0.2496171544429268 = 0.44584147212998965\n",
      "field decay(t = 550.22): 0.012792200930380799 / 0.2496171544429268 = 0.05124728289980425\n",
      "field decay(t = 600.24): 0.00037674952832450226 / 0.2496171544429268 = 0.0015093094429559464\n",
      "field decay(t = 650.26): 2.4030138513979544e-06 / 0.2496171544429268 = 9.626797712524147e-06\n",
      "field decay(t = 700.28): 4.467104403481891e-09 / 0.2496171544429268 = 1.7895822959167907e-08\n",
      "run 0 finished at t = 700.28 (35014 timesteps)\n",
      "harmonics:, 6.309573444801955e-05, 1.0, 225.16365094354785, 0.00010009819239837291\n",
      "-----------\n",
      "Initializing structure...\n",
      "time for choose_chunkdivision = 7.9811e-05 s\n",
      "Working in 1D dimensions.\n",
      "Computational cell is 0 x 0 x 100 with resolution 25\n",
      "time for set_epsilon = 0.000878533 s\n",
      "-----------\n",
      "field decay(t = 100.04): 5.345069974778442e-12 / 5.345069974778442e-12 = 1.0\n",
      "field decay(t = 150.06): 1.0169446303787614e-08 / 1.0169446303787614e-08 = 1.0\n",
      "field decay(t = 200.08): 4.650913254462442e-06 / 4.650913254462442e-06 = 1.0\n",
      "field decay(t = 250.1): 0.0005451375155924395 / 0.0005451375155924395 = 1.0\n",
      "field decay(t = 300.12): 0.017793594549247182 / 0.017793594549247182 = 1.0\n",
      "field decay(t = 350.14): 0.131543940151223 / 0.131543940151223 = 1.0\n",
      "field decay(t = 400.16): 0.24945871291377122 / 0.24945871291377122 = 1.0\n",
      "field decay(t = 450.18): 0.2488499372366258 / 0.24945871291377122 = 0.9975596134926109\n",
      "field decay(t = 500.2): 0.11125169749613016 / 0.24945871291377122 = 0.44597238635872305\n",
      "field decay(t = 550.22): 0.01279174151811136 / 0.24945871291377122 = 0.05127799052876938\n",
      "field decay(t = 600.24): 0.0003767491650682709 / 0.24945871291377122 = 0.0015102666115274128\n",
      "field decay(t = 650.26): 2.403013633966078e-06 / 0.24945871291377122 = 9.632911217643907e-06\n",
      "field decay(t = 700.28): 4.467098829144931e-09 / 0.24945871291377122 = 1.7907166989549264e-08\n",
      "run 0 finished at t = 700.28 (35014 timesteps)\n",
      "harmonics:, 0.00010000000000000041, 1.0, 225.16302527038428, 0.00025135123845669517\n",
      "-----------\n",
      "Initializing structure...\n",
      "time for choose_chunkdivision = 7.78e-05 s\n",
      "Working in 1D dimensions.\n",
      "Computational cell is 0 x 0 x 100 with resolution 25\n",
      "time for set_epsilon = 0.000898538 s\n",
      "-----------\n",
      "field decay(t = 100.04): 5.3450699747783515e-12 / 5.3450699747783515e-12 = 1.0\n",
      "field decay(t = 150.06): 1.0169446303327934e-08 / 1.0169446303327934e-08 = 1.0\n",
      "field decay(t = 200.08): 4.650913166004646e-06 / 4.650913166004646e-06 = 1.0\n",
      "field decay(t = 250.1): 0.0005451364102276239 / 0.0005451364102276239 = 1.0\n",
      "field decay(t = 300.12): 0.017792124105148122 / 0.017792124105148122 = 1.0\n",
      "field decay(t = 350.14): 0.13146837693935148 / 0.13146837693935148 = 1.0\n",
      "field decay(t = 400.16): 0.24920348319619115 / 0.24920348319619115 = 1.0\n",
      "field decay(t = 450.18): 0.24859736569326615 / 0.24920348319619115 = 0.9975677807743649\n",
      "field decay(t = 500.2): 0.11119116730083108 / 0.24920348319619115 = 0.4461862485818197\n",
      "field decay(t = 550.22): 0.012791012860002239 / 0.24920348319619115 = 0.05132758457445886\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "field decay(t = 600.24): 0.00037674858896835574 / 0.24920348319619115 = 0.0015118110876153035\n",
      "field decay(t = 650.26): 2.403013284453902e-06 / 0.24920348319619115 = 9.642775669239241e-06\n",
      "field decay(t = 700.28): 4.467090445070018e-09 / 0.24920348319619115 = 1.792547354385572e-08\n",
      "run 0 finished at t = 700.28 (35014 timesteps)\n",
      "harmonics:, 0.00015848931924611207, 1.0, 225.16179312916677, 0.0006310268008721403\n",
      "-----------\n",
      "Initializing structure...\n",
      "time for choose_chunkdivision = 7.3666e-05 s\n",
      "Working in 1D dimensions.\n",
      "Computational cell is 0 x 0 x 100 with resolution 25\n",
      "time for set_epsilon = 0.000957791 s\n",
      "-----------\n",
      "field decay(t = 100.04): 5.345069974778269e-12 / 5.345069974778269e-12 = 1.0\n",
      "field decay(t = 150.06): 1.0169446302599233e-08 / 1.0169446302599233e-08 = 1.0\n",
      "field decay(t = 200.08): 4.650913025808378e-06 / 4.650913025808378e-06 = 1.0\n",
      "field decay(t = 250.1): 0.0005451346582304672 / 0.0005451346582304672 = 1.0\n",
      "field decay(t = 300.12): 0.017789790117491676 / 0.017789790117491676 = 1.0\n",
      "field decay(t = 350.14): 0.1313471646264031 / 0.1313471646264031 = 1.0\n",
      "field decay(t = 400.16): 0.24878880289605676 / 0.24878880289605676 = 1.0\n",
      "field decay(t = 450.18): 0.24818694343126665 / 0.24878880289605676 = 0.9975808418313683\n",
      "field decay(t = 500.2): 0.11109440471345641 / 0.24878880289605676 = 0.44654101559333975\n",
      "field decay(t = 550.22): 0.012789856662544544 / 0.24878880289605676 = 0.05140848990654981\n",
      "field decay(t = 600.24): 0.0003767476749381477 / 0.24878880289605676 = 0.0015143272950895294\n",
      "field decay(t = 650.26): 2.403012722618603e-06 / 0.24878880289605676 = 9.658845955469203e-06\n",
      "field decay(t = 700.28): 4.467078399956638e-09 / 0.24878880289605676 = 1.7955303244989568e-08\n",
      "run 0 finished at t = 700.28 (35014 timesteps)\n",
      "harmonics:, 0.00025118864315095926, 1.0, 225.1592372361368, 0.0015836937554106964\n",
      "-----------\n",
      "Initializing structure...\n",
      "time for choose_chunkdivision = 0.000152275 s\n",
      "Working in 1D dimensions.\n",
      "Computational cell is 0 x 0 x 100 with resolution 25\n",
      "time for set_epsilon = 0.000551973 s\n",
      "-----------\n",
      "field decay(t = 100.04): 5.3450699747781285e-12 / 5.3450699747781285e-12 = 1.0\n",
      "field decay(t = 150.06): 1.01694463014444e-08 / 1.01694463014444e-08 = 1.0\n",
      "field decay(t = 200.08): 4.650912803612141e-06 / 4.650912803612141e-06 = 1.0\n",
      "field decay(t = 250.1): 0.0005451318812208306 / 0.0005451318812208306 = 1.0\n",
      "field decay(t = 300.12): 0.017786082245869233 / 0.017786082245869233 = 1.0\n",
      "field decay(t = 350.14): 0.1311514603213696 / 0.1311514603213696 = 1.0\n",
      "field decay(t = 400.16): 0.24810671668218798 / 0.24810671668218798 = 1.0\n",
      "field decay(t = 450.18): 0.24751171235528827 / 0.24810671668218798 = 0.9976018209629453\n",
      "field decay(t = 500.2): 0.11094283579553336 / 0.24810671668218798 = 0.4471577282514502\n",
      "field decay(t = 550.22): 0.012788020821010097 / 0.24810671668218798 = 0.051542420906689514\n",
      "field decay(t = 600.24): 0.00037674622379114167 / 0.24810671668218798 = 0.001518484581268851\n",
      "field decay(t = 650.26): 2.403011830218934e-06 / 0.24810671668218798 = 9.685396116450443e-06\n",
      "field decay(t = 700.28): 4.467062823838071e-09 / 0.24810671668218798 = 1.8004602549958978e-08\n",
      "run 0 finished at t = 700.28 (35014 timesteps)\n",
      "harmonics:, 0.00039810717055349936, 1.0, 225.15367584280935, 0.003972440547314146\n",
      "-----------\n",
      "Initializing structure...\n",
      "time for choose_chunkdivision = 7.5129e-05 s\n",
      "Working in 1D dimensions.\n",
      "Computational cell is 0 x 0 x 100 with resolution 25\n",
      "time for set_epsilon = 0.000496899 s\n",
      "-----------\n",
      "field decay(t = 100.04): 5.345069974777999e-12 / 5.345069974777999e-12 = 1.0\n",
      "field decay(t = 150.06): 1.0169446299614097e-08 / 1.0169446299614097e-08 = 1.0\n",
      "field decay(t = 200.08): 4.650912451454404e-06 / 4.650912451454404e-06 = 1.0\n",
      "field decay(t = 250.1): 0.0005451274792506687 / 0.0005451274792506687 = 1.0\n",
      "field decay(t = 300.12): 0.017780183756957307 / 0.017780183756957307 = 1.0\n",
      "field decay(t = 350.14): 0.13083246794663117 / 0.13083246794663117 = 1.0\n",
      "field decay(t = 400.16): 0.24702535367001618 / 0.24702535367001618 = 1.0\n",
      "field decay(t = 450.18): 0.24642377271214497 / 0.24702535367001618 = 0.9975646995381906\n",
      "field decay(t = 500.2): 0.11075433688466904 / 0.24702535367001618 = 0.44835210329308134\n",
      "field decay(t = 550.22): 0.01278510270744565 / 0.24702535367001618 = 0.05175623682953763\n",
      "field decay(t = 600.24): 0.00037674391757787606 / 0.24702535367001618 = 0.0015251224701458854\n",
      "field decay(t = 650.26): 2.4030104816223913e-06 / 0.24702535367001618 = 9.72778885212084e-06\n",
      "field decay(t = 700.28): 4.467048183917948e-09 / 0.24702535367001618 = 1.808335912711682e-08\n",
      "run 0 finished at t = 700.28 (35014 timesteps)\n",
      "harmonics:, 0.0006309573444801969, 1.0, 225.14108459473545, 0.009955033096505642\n",
      "-----------\n",
      "Initializing structure...\n",
      "time for choose_chunkdivision = 7.9957e-05 s\n",
      "Working in 1D dimensions.\n",
      "Computational cell is 0 x 0 x 100 with resolution 25\n",
      "time for set_epsilon = 0.00116261 s\n",
      "-----------\n",
      "field decay(t = 100.04): 5.345069974777698e-12 / 5.345069974777698e-12 = 1.0\n",
      "field decay(t = 150.06): 1.0169446296713276e-08 / 1.0169446296713276e-08 = 1.0\n",
      "field decay(t = 200.08): 4.650911893321058e-06 / 4.650911893321058e-06 = 1.0\n",
      "field decay(t = 250.1): 0.0005451205008237796 / 0.0005451205008237796 = 1.0\n",
      "field decay(t = 300.12): 0.017770780535768905 / 0.017770780535768905 = 1.0\n",
      "field decay(t = 350.14): 0.13039636481724098 / 0.13039636481724098 = 1.0\n",
      "field decay(t = 400.16): 0.24555052973215005 / 0.24555052973215005 = 1.0\n",
      "field decay(t = 450.18): 0.24496560125506933 / 0.24555052973215005 = 0.9976178895736093\n",
      "field decay(t = 500.2): 0.11044114777393672 / 0.24555052973215005 = 0.4497695358035166\n",
      "field decay(t = 550.22): 0.012780456545355702 / 0.24555052973215005 = 0.052048173381245816\n",
      "field decay(t = 600.24): 0.00037674024813005765 / 0.24555052973215005 = 0.0015342677066956898\n",
      "field decay(t = 650.26): 2.4030087682352195e-06 / 0.24555052973215005 = 9.786208854269038e-06\n",
      "field decay(t = 700.28): 4.467052624217102e-09 / 0.24555052973215005 = 1.819198935994895e-08\n",
      "run 0 finished at t = 700.28 (35014 timesteps)\n",
      "harmonics:, 0.001000000000000006, 1.0, 225.1117121217118, 0.024907534309575777\n",
      "-----------\n",
      "Initializing structure...\n",
      "time for choose_chunkdivision = 8.1e-05 s\n",
      "Working in 1D dimensions.\n",
      "Computational cell is 0 x 0 x 100 with resolution 25\n",
      "time for set_epsilon = 0.000806385 s\n",
      "-----------\n",
      "field decay(t = 100.04): 5.3450699747772626e-12 / 5.3450699747772626e-12 = 1.0\n",
      "field decay(t = 150.06): 1.0169446292115817e-08 / 1.0169446292115817e-08 = 1.0\n",
      "field decay(t = 200.08): 4.65091100873642e-06 / 4.65091100873642e-06 = 1.0\n",
      "field decay(t = 250.1): 0.0005451094363065589 / 0.0005451094363065589 = 1.0\n",
      "field decay(t = 300.12): 0.01775574104989064 / 0.01775574104989064 = 1.0\n",
      "field decay(t = 350.14): 0.1297186505527772 / 0.1297186505527772 = 1.0\n",
      "field decay(t = 400.16): 0.24330568181730292 / 0.24330568181730292 = 1.0\n",
      "field decay(t = 450.18): 0.24272872460013623 / 0.24330568181730292 = 0.9976286734742187\n",
      "field decay(t = 500.2): 0.10991015097765587 / 0.24330568181730292 = 0.4517368857016125\n",
      "field decay(t = 550.22): 0.012773039874014007 / 0.24330568181730292 = 0.05249791035955018\n",
      "field decay(t = 600.24): 0.0003767344101864842 / 0.24330568181730292 = 0.0015483995580069202\n",
      "field decay(t = 650.26): 2.403007840661162e-06 / 0.24330568181730292 = 9.876497016890748e-06\n",
      "field decay(t = 700.28): 4.467122470311085e-09 / 0.24330568181730292 = 1.8360123927008928e-08\n",
      "run 0 finished at t = 700.28 (35014 timesteps)\n",
      "harmonics:, 0.0015848931924611238, 1.0, 225.0417986570744, 0.06213865760610543\n",
      "-----------\n",
      "Initializing structure...\n",
      "time for choose_chunkdivision = 7.9428e-05 s\n",
      "Working in 1D dimensions.\n",
      "Computational cell is 0 x 0 x 100 with resolution 25\n",
      "time for set_epsilon = 0.000509082 s\n",
      "-----------\n",
      "field decay(t = 100.04): 5.3450699747765105e-12 / 5.3450699747765105e-12 = 1.0\n",
      "field decay(t = 150.06): 1.0169446284829322e-08 / 1.0169446284829322e-08 = 1.0\n",
      "field decay(t = 200.08): 4.65090960675786e-06 / 4.65090960675786e-06 = 1.0\n",
      "field decay(t = 250.1): 0.0005450918890396788 / 0.0005450918890396788 = 1.0\n",
      "field decay(t = 300.12): 0.0177315669710856 / 0.0177315669710856 = 1.0\n",
      "field decay(t = 350.14): 0.12870448940754486 / 0.12870448940754486 = 1.0\n",
      "field decay(t = 400.16): 0.24009442281853152 / 0.24009442281853152 = 1.0\n",
      "field decay(t = 450.18): 0.23951896785692936 / 0.24009442281853152 = 0.9976032139570477\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "field decay(t = 500.2): 0.109172861261678 / 0.24009442281853152 = 0.45470802686738443\n",
      "field decay(t = 550.22): 0.012761153864268465 / 0.24009442281853152 = 0.05315056349273726\n",
      "field decay(t = 600.24): 0.00037672517750389907 / 0.24009442281853152 = 0.0015690709225204952\n",
      "field decay(t = 650.26): 2.4030109102183914e-06 / 0.24009442281853152 = 1.0008607788589234e-05\n",
      "field decay(t = 700.28): 4.467285139279417e-09 / 0.24009442281853152 = 1.8606367806618675e-08\n",
      "run 0 finished at t = 700.28 (35014 timesteps)\n",
      "harmonics:, 0.0025118864315095977, 1.0, 224.87354381468265, 0.1541822732049199\n",
      "-----------\n",
      "Initializing structure...\n",
      "time for choose_chunkdivision = 7.4041e-05 s\n",
      "Working in 1D dimensions.\n",
      "Computational cell is 0 x 0 x 100 with resolution 25\n",
      "time for set_epsilon = 0.00129713 s\n",
      "-----------\n",
      "field decay(t = 100.04): 5.345069974775395e-12 / 5.345069974775395e-12 = 1.0\n",
      "field decay(t = 150.06): 1.0169446273280971e-08 / 1.0169446273280971e-08 = 1.0\n",
      "field decay(t = 200.08): 4.650907384754755e-06 / 4.650907384754755e-06 = 1.0\n",
      "field decay(t = 250.1): 0.0005450640504066537 / 0.0005450640504066537 = 1.0\n",
      "field decay(t = 300.12): 0.017700448238569356 / 0.017700448238569356 = 1.0\n",
      "field decay(t = 350.14): 0.127238739165511 / 0.127238739165511 = 1.0\n",
      "field decay(t = 400.16): 0.23607685977478424 / 0.23607685977478424 = 1.0\n",
      "field decay(t = 450.18): 0.235521457134509 / 0.23607685977478424 = 0.9976473651809623\n",
      "field decay(t = 500.2): 0.1080748102635521 / 0.23607685977478424 = 0.4577950179727685\n",
      "field decay(t = 550.22): 0.012741991260680789 / 0.23607685977478424 = 0.05397391033088361\n",
      "field decay(t = 600.24): 0.0003767107272766363 / 0.23607685977478424 = 0.0015957122084562453\n",
      "field decay(t = 650.26): 2.403014548579255e-06 / 0.23607685977478424 = 1.0178949986337987e-05\n",
      "field decay(t = 700.28): 4.467243285980297e-09 / 0.23607685977478424 = 1.8922834242381985e-08\n",
      "run 0 finished at t = 700.28 (35014 timesteps)\n",
      "harmonics:, 0.003981071705535002, 1.0, 224.46789519742043, 0.37853579152133876\n",
      "-----------\n",
      "Initializing structure...\n",
      "time for choose_chunkdivision = 7.4749e-05 s\n",
      "Working in 1D dimensions.\n",
      "Computational cell is 0 x 0 x 100 with resolution 25\n",
      "time for set_epsilon = 0.000481817 s\n",
      "-----------\n",
      "field decay(t = 100.04): 5.345069974773556e-12 / 5.345069974773556e-12 = 1.0\n",
      "field decay(t = 150.06): 1.0169446254978055e-08 / 1.0169446254978055e-08 = 1.0\n",
      "field decay(t = 200.08): 4.650903863075193e-06 / 4.650903863075193e-06 = 1.0\n",
      "field decay(t = 250.1): 0.0005450198586531935 / 0.0005450198586531935 = 1.0\n",
      "field decay(t = 300.12): 0.017651930818716285 / 0.017651930818716285 = 1.0\n",
      "field decay(t = 350.14): 0.12528210541303175 / 0.12528210541303175 = 1.0\n",
      "field decay(t = 400.16): 0.23118021684180318 / 0.23118021684180318 = 1.0\n",
      "field decay(t = 450.18): 0.2306509947916604 / 0.23118021684180318 = 0.9977107814095316\n",
      "field decay(t = 500.2): 0.1065630103223593 / 0.23118021684180318 = 0.4609521168296181\n",
      "field decay(t = 550.22): 0.012710818493179152 / 0.23118021684180318 = 0.054982293324333964\n",
      "field decay(t = 600.24): 0.00037668761551044324 / 0.23118021684180318 = 0.0016294111176831836\n",
      "field decay(t = 650.26): 2.4030055990318482e-06 / 0.23118021684180318 = 1.0394512263461658e-05\n",
      "field decay(t = 700.28): 4.467125754656144e-09 / 0.23118021684180318 = 1.932313160564687e-08\n",
      "run 0 finished at t = 700.28 (35014 timesteps)\n",
      "harmonics:, 0.0063095734448019814, 1.0, 223.49965201077922, 0.9098111290723069\n",
      "-----------\n",
      "Initializing structure...\n",
      "time for choose_chunkdivision = 7.397e-05 s\n",
      "Working in 1D dimensions.\n",
      "Computational cell is 0 x 0 x 100 with resolution 25\n",
      "time for set_epsilon = 0.000488487 s\n",
      "-----------\n",
      "field decay(t = 100.04): 5.345069974770661e-12 / 5.345069974770661e-12 = 1.0\n",
      "field decay(t = 150.06): 1.0169446225969908e-08 / 1.0169446225969908e-08 = 1.0\n",
      "field decay(t = 200.08): 4.650898281484014e-06 / 4.650898281484014e-06 = 1.0\n",
      "field decay(t = 250.1): 0.0005449496426246324 / 0.0005449496426246324 = 1.0\n",
      "field decay(t = 300.12): 0.017569355547691595 / 0.017569355547691595 = 1.0\n",
      "field decay(t = 350.14): 0.12281472609090383 / 0.12281472609090383 = 1.0\n",
      "field decay(t = 400.16): 0.22531439709826265 / 0.22531439709826265 = 1.0\n",
      "field decay(t = 450.18): 0.22482927464433725 / 0.22531439709826265 = 0.9978469087631634\n",
      "field decay(t = 500.2): 0.10798295720602 / 0.22531439709826265 = 0.4792545820271182\n",
      "field decay(t = 550.22): 0.012669501060369235 / 0.22531439709826265 = 0.05623032182379316\n",
      "field decay(t = 600.24): 0.00037665107710743793 / 0.22531439709826265 = 0.001671668929984866\n",
      "field decay(t = 650.26): 2.4030053494996236e-06 / 0.22531439709826265 = 1.0665121183763684e-05\n",
      "field decay(t = 700.28): 4.467048459398488e-09 / 0.22531439709826265 = 1.9825845649136873e-08\n",
      "run 0 finished at t = 700.28 (35014 timesteps)\n",
      "harmonics:, 0.010000000000000082, 1.0, 221.25691828918846, 2.094806452639111\n",
      "-----------\n",
      "Initializing structure...\n",
      "time for choose_chunkdivision = 7.5854e-05 s\n",
      "Working in 1D dimensions.\n",
      "Computational cell is 0 x 0 x 100 with resolution 25\n",
      "time for set_epsilon = 0.000920106 s\n",
      "-----------\n",
      "field decay(t = 100.04): 5.345069974766093e-12 / 5.345069974766093e-12 = 1.0\n",
      "field decay(t = 150.06): 1.0169446179995062e-08 / 1.0169446179995062e-08 = 1.0\n",
      "field decay(t = 200.08): 4.6508894349934504e-06 / 4.6508894349934504e-06 = 1.0\n",
      "field decay(t = 250.1): 0.0005448379145725761 / 0.0005448379145725761 = 1.0\n",
      "field decay(t = 300.12): 0.0174518240541605 / 0.0174518240541605 = 1.0\n",
      "field decay(t = 350.14): 0.1198104417750247 / 0.1198104417750247 = 1.0\n",
      "field decay(t = 400.16): 0.2178144806969058 / 0.2178144806969058 = 1.0\n",
      "field decay(t = 450.18): 0.2174095389093573 / 0.2178144806969058 = 0.9981408867479662\n",
      "field decay(t = 500.2): 0.10689615163941552 / 0.2178144806969058 = 0.4907669650676905\n",
      "field decay(t = 550.22): 0.012603441555172843 / 0.2178144806969058 = 0.057863194011930005\n",
      "field decay(t = 600.24): 0.0003765927902040865 / 0.2178144806969058 = 0.0017289612196542828\n",
      "field decay(t = 650.26): 2.4030010290977327e-06 / 0.2178144806969058 = 1.1032329078439774e-05\n",
      "field decay(t = 700.28): 4.467142607822792e-09 / 0.2178144806969058 = 2.0508933077038762e-08\n",
      "run 0 finished at t = 700.28 (35014 timesteps)\n",
      "harmonics:, 0.01584893192461127, 1.0, 216.41415446933203, 4.429179313929301\n",
      "-----------\n",
      "Initializing structure...\n",
      "time for choose_chunkdivision = 0.000131984 s\n",
      "Working in 1D dimensions.\n",
      "Computational cell is 0 x 0 x 100 with resolution 25\n",
      "time for set_epsilon = 0.000912022 s\n",
      "-----------\n",
      "field decay(t = 100.04): 5.345069974758849e-12 / 5.345069974758849e-12 = 1.0\n",
      "field decay(t = 150.06): 1.016944610712986e-08 / 1.016944610712986e-08 = 1.0\n",
      "field decay(t = 200.08): 4.650875413586146e-06 / 4.650875413586146e-06 = 1.0\n",
      "field decay(t = 250.1): 0.0005446597284017753 / 0.0005446597284017753 = 1.0\n",
      "field decay(t = 300.12): 0.01727707174154046 / 0.01727707174154046 = 1.0\n",
      "field decay(t = 350.14): 0.11599910493080164 / 0.11599910493080164 = 1.0\n",
      "field decay(t = 400.16): 0.20989110780110146 / 0.20989110780110146 = 1.0\n",
      "field decay(t = 450.18): 0.2095734153022807 / 0.20989110780110146 = 0.9984863937203009\n",
      "field decay(t = 500.2): 0.10413005947213903 / 0.20989110780110146 = 0.4961146785256645\n",
      "field decay(t = 550.22): 0.012505896487971669 / 0.20989110780110146 = 0.059582783753862494\n",
      "field decay(t = 600.24): 0.0003765002234598392 / 0.20989110780110146 = 0.001793788347701805\n",
      "field decay(t = 650.26): 2.40299489953039e-06 / 0.20989110780110146 = 1.1448769434327506e-05\n",
      "field decay(t = 700.28): 4.467105259129218e-09 / 0.20989110780110146 = 2.128296575271006e-08\n",
      "run 0 finished at t = 700.28 (35014 timesteps)\n",
      "harmonics:, 0.025118864315096027, 1.0, 207.36551123280188, 7.9296875329420455\n",
      "-----------\n",
      "Initializing structure...\n",
      "time for choose_chunkdivision = 7.4101e-05 s\n",
      "Working in 1D dimensions.\n",
      "Computational cell is 0 x 0 x 100 with resolution 25\n",
      "time for set_epsilon = 0.000909181 s\n",
      "-----------\n",
      "field decay(t = 100.04): 5.345069974747352e-12 / 5.345069974747352e-12 = 1.0\n",
      "field decay(t = 150.06): 1.0169445991646362e-08 / 1.0169445991646362e-08 = 1.0\n",
      "field decay(t = 200.08): 4.6508531894836915e-06 / 4.6508531894836915e-06 = 1.0\n",
      "field decay(t = 250.1): 0.0005443745521790347 / 0.0005443745521790347 = 1.0\n",
      "field decay(t = 300.12): 0.0170313199261343 / 0.0170313199261343 = 1.0\n",
      "field decay(t = 350.14): 0.111067032695486 / 0.111067032695486 = 1.0\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "field decay(t = 400.16): 0.20820740580453972 / 0.20820740580453972 = 1.0\n",
      "field decay(t = 450.18): 0.20802140147634976 / 0.20820740580453972 = 0.9991066392308611\n",
      "field decay(t = 500.2): 0.10095787089525556 / 0.20820740580453972 = 0.48489087362258604\n",
      "field decay(t = 550.22): 0.012365563019300866 / 0.20820740580453972 = 0.05939060126857048\n",
      "field decay(t = 600.24): 0.0003763526195198078 / 0.20820740580453972 = 0.0018075851724175405\n",
      "field decay(t = 650.26): 2.4029889551311664e-06 / 0.20820740580453972 = 1.154132316209269e-05\n",
      "field decay(t = 700.28): 4.467162646732303e-09 / 0.20820740580453972 = 2.145534943615777e-08\n",
      "run 0 finished at t = 700.28 (35014 timesteps)\n",
      "harmonics:, 0.0398107170553501, 1.0, 193.6011512723667, 10.070607189474567\n",
      "-----------\n",
      "Initializing structure...\n",
      "time for choose_chunkdivision = 7.9907e-05 s\n",
      "Working in 1D dimensions.\n",
      "Computational cell is 0 x 0 x 100 with resolution 25\n",
      "time for set_epsilon = 0.000907052 s\n",
      "-----------\n",
      "field decay(t = 100.04): 5.345069974729155e-12 / 5.345069974729155e-12 = 1.0\n",
      "field decay(t = 150.06): 1.0169445808617165e-08 / 1.0169445808617165e-08 = 1.0\n",
      "field decay(t = 200.08): 4.650817962461843e-06 / 4.650817962461843e-06 = 1.0\n",
      "field decay(t = 250.1): 0.0005439156829478632 / 0.0005439156829478632 = 1.0\n",
      "field decay(t = 300.12): 0.016616296510880826 / 0.016616296510880826 = 1.0\n",
      "field decay(t = 350.14): 0.10715059301879028 / 0.10715059301879028 = 1.0\n",
      "field decay(t = 400.16): 0.20876708083835804 / 0.20876708083835804 = 1.0\n",
      "field decay(t = 450.18): 0.20874885936981835 / 0.20876708083835804 = 0.9999127186696939\n",
      "field decay(t = 500.2): 0.09911719000394087 / 0.20876708083835804 = 0.47477403815731023\n",
      "field decay(t = 550.22): 0.01218124420974051 / 0.20876708083835804 = 0.05834849134654555\n",
      "field decay(t = 600.24): 0.0003761164963470216 / 0.20876708083835804 = 0.0018016082556532803\n",
      "field decay(t = 650.26): 2.4029780357721867e-06 / 0.20876708083835804 = 1.1510330202072131e-05\n",
      "field decay(t = 700.28): 4.467009090915526e-09 / 0.20876708083835804 = 2.1397095140560952e-08\n",
      "run 0 finished at t = 700.28 (35014 timesteps)\n",
      "harmonics:, 0.06309573444801994, 1.0, 173.54759042058004, 6.176862896998704\n",
      "-----------\n",
      "Initializing structure...\n",
      "time for choose_chunkdivision = 7.9734e-05 s\n",
      "Working in 1D dimensions.\n",
      "Computational cell is 0 x 0 x 100 with resolution 25\n",
      "time for set_epsilon = 0.000541516 s\n",
      "-----------\n",
      "field decay(t = 100.04): 5.345069974700306e-12 / 5.345069974700306e-12 = 1.0\n",
      "field decay(t = 150.06): 1.0169445518535415e-08 / 1.0169445518535415e-08 = 1.0\n",
      "field decay(t = 200.08): 4.650762120863385e-06 / 4.650762120863385e-06 = 1.0\n",
      "field decay(t = 250.1): 0.0005431713534528077 / 0.0005431713534528077 = 1.0\n",
      "field decay(t = 300.12): 0.015624179670708872 / 0.015624179670708872 = 1.0\n",
      "field decay(t = 350.14): 0.1019325767743003 / 0.1019325767743003 = 1.0\n",
      "field decay(t = 400.16): 0.23169084040267007 / 0.23169084040267007 = 1.0\n",
      "field decay(t = 450.18): 0.23240467775625034 / 0.23240467775625034 = 1.0\n",
      "field decay(t = 500.2): 0.10222488043703781 / 0.23240467775625034 = 0.4398572413600593\n",
      "field decay(t = 550.22): 0.011956286799054538 / 0.23240467775625034 = 0.05144598170091257\n",
      "field decay(t = 600.24): 0.00037573673937081094 / 0.23240467775625034 = 0.0016167348394118361\n",
      "field decay(t = 650.26): 2.4029564352003662e-06 / 0.23240467775625034 = 1.033953558250073e-05\n",
      "field decay(t = 700.28): 4.467207508276752e-09 / 0.23240467775625034 = 1.9221676393975294e-08\n",
      "run 0 finished at t = 700.28 (35014 timesteps)\n",
      "harmonics:, 0.10000000000000102, 1.0, 143.29971061666146, 1.337907698289428\n",
      "-----------\n",
      "Initializing structure...\n",
      "time for choose_chunkdivision = 7.9257e-05 s\n",
      "Working in 1D dimensions.\n",
      "Computational cell is 0 x 0 x 100 with resolution 25\n",
      "time for set_epsilon = 0.000487983 s\n",
      "-----------\n",
      "field decay(t = 100.04): 5.345069974654548e-12 / 5.345069974654548e-12 = 1.0\n",
      "field decay(t = 150.06): 1.0169445058786566e-08 / 1.0169445058786566e-08 = 1.0\n",
      "field decay(t = 200.08): 4.650673591445848e-06 / 4.650673591445848e-06 = 1.0\n",
      "field decay(t = 250.1): 0.0005419497773421297 / 0.0005419497773421297 = 1.0\n",
      "field decay(t = 300.12): 0.01468960910671688 / 0.01468960910671688 = 1.0\n",
      "field decay(t = 350.14): 0.09549018799286169 / 0.09549018799286169 = 1.0\n",
      "field decay(t = 400.16): 0.2201120029446867 / 0.2201120029446867 = 1.0\n",
      "field decay(t = 450.18): 0.22018394888915546 / 0.22018394888915546 = 1.0\n",
      "field decay(t = 500.2): 0.09453094116088592 / 0.22018394888915546 = 0.4293271223347642\n",
      "field decay(t = 550.22): 0.011701901150644354 / 0.22018394888915546 = 0.05314602272182565\n",
      "field decay(t = 600.24): 0.00037512072334541086 / 0.22018394888915546 = 0.0017036697054345835\n",
      "field decay(t = 650.26): 2.402942599168309e-06 / 0.22018394888915546 = 1.0913341373389545e-05\n",
      "field decay(t = 700.28): 4.467083729548764e-09 / 0.22018394888915546 = 2.028796264253383e-08\n",
      "run 0 finished at t = 700.28 (35014 timesteps)\n",
      "harmonics:, 0.15848931924611304, 1.0, 94.63060517366483, 0.3673651607719127\n",
      "-----------\n",
      "Initializing structure...\n",
      "time for choose_chunkdivision = 7.9286e-05 s\n",
      "Working in 1D dimensions.\n",
      "Computational cell is 0 x 0 x 100 with resolution 25\n",
      "time for set_epsilon = 0.000483516 s\n",
      "-----------\n",
      "field decay(t = 100.04): 5.345069974582112e-12 / 5.345069974582112e-12 = 1.0\n",
      "field decay(t = 150.06): 1.0169444330133054e-08 / 1.0169444330133054e-08 = 1.0\n",
      "field decay(t = 200.08): 4.650533215360899e-06 / 4.650533215360899e-06 = 1.0\n",
      "field decay(t = 250.1): 0.0005399123569462003 / 0.0005399123569462003 = 1.0\n",
      "field decay(t = 300.12): 0.014093771665812152 / 0.014093771665812152 = 1.0\n",
      "field decay(t = 350.14): 0.11153132077038035 / 0.11153132077038035 = 1.0\n",
      "field decay(t = 400.16): 0.20693495278636373 / 0.20693495278636373 = 1.0\n",
      "field decay(t = 450.18): 0.2108832109073181 / 0.2108832109073181 = 1.0\n",
      "field decay(t = 500.2): 0.1236622673624957 / 0.2108832109073181 = 0.5864016714770363\n",
      "field decay(t = 550.22): 0.011423928445385981 / 0.2108832109073181 = 0.054171825230822805\n",
      "field decay(t = 600.24): 0.0003741101509557853 / 0.2108832109073181 = 0.0017740158135215631\n",
      "field decay(t = 650.26): 2.4027355648885305e-06 / 0.2108832109073181 = 1.1393678778651177e-05\n",
      "field decay(t = 700.28): 4.466346571266359e-09 / 0.2108832109073181 = 2.1179242065075022e-08\n",
      "run 0 finished at t = 700.28 (35014 timesteps)\n",
      "harmonics:, 0.2511886431509608, 1.0, 22.57026661243729, 0.413475056352828\n",
      "-----------\n",
      "Initializing structure...\n",
      "time for choose_chunkdivision = 7.8851e-05 s\n",
      "Working in 1D dimensions.\n",
      "Computational cell is 0 x 0 x 100 with resolution 25\n",
      "time for set_epsilon = 0.000499921 s\n",
      "-----------\n",
      "field decay(t = 100.04): 5.345069974467246e-12 / 5.345069974467246e-12 = 1.0\n",
      "field decay(t = 150.06): 1.01694431752934e-08 / 1.01694431752934e-08 = 1.0\n",
      "field decay(t = 200.08): 4.650310567520623e-06 / 4.650310567520623e-06 = 1.0\n",
      "field decay(t = 250.1): 0.0005371041801518204 / 0.0005371041801518204 = 1.0\n",
      "field decay(t = 300.12): 0.0133717723333235 / 0.0133717723333235 = 1.0\n",
      "field decay(t = 350.14): 0.10093780191859889 / 0.10093780191859889 = 1.0\n",
      "field decay(t = 400.16): 0.2156226336487837 / 0.2156226336487837 = 1.0\n",
      "field decay(t = 450.18): 0.2158103663775883 / 0.2158103663775883 = 1.0\n",
      "field decay(t = 500.2): 0.12022970754111681 / 0.2158103663775883 = 0.5571081202408938\n",
      "field decay(t = 550.22): 0.011148924153637383 / 0.2158103663775883 = 0.05166074429497465\n",
      "field decay(t = 600.24): 0.0003724922303640203 / 0.2158103663775883 = 0.001726016394005359\n",
      "field decay(t = 650.26): 2.4037727963378503e-06 / 0.2158103663775883 = 1.1138356496425835e-05\n",
      "field decay(t = 700.28): 4.458838350356822e-09 / 0.2158103663775883 = 2.066090904343077e-08\n",
      "run 0 finished at t = 700.28 (35014 timesteps)\n",
      "harmonics:, 0.3981071705535018, 1.0, 9.726091154582134, 0.6671254223636301\n",
      "-----------\n",
      "Initializing structure...\n",
      "time for choose_chunkdivision = 7.8643e-05 s\n",
      "Working in 1D dimensions.\n",
      "Computational cell is 0 x 0 x 100 with resolution 25\n",
      "time for set_epsilon = 0.000494216 s\n",
      "-----------\n",
      "field decay(t = 100.04): 5.345069974285215e-12 / 5.345069974285215e-12 = 1.0\n",
      "field decay(t = 150.06): 1.0169441344991794e-08 / 1.0169441344991794e-08 = 1.0\n",
      "field decay(t = 200.08): 4.6499572759824876e-06 / 4.6499572759824876e-06 = 1.0\n",
      "field decay(t = 250.1): 0.0005326910474981596 / 0.0005326910474981596 = 1.0\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "field decay(t = 300.12): 0.01292196509216716 / 0.01292196509216716 = 1.0\n",
      "field decay(t = 350.14): 0.08319212231475127 / 0.08319212231475127 = 1.0\n",
      "field decay(t = 400.16): 0.1911588547362798 / 0.1911588547362798 = 1.0\n",
      "field decay(t = 450.18): 0.21391676622793007 / 0.21391676622793007 = 1.0\n",
      "field decay(t = 500.2): 0.12912188463630342 / 0.21391676622793007 = 0.6036080617389429\n",
      "field decay(t = 550.22): 0.011642738890991022 / 0.21391676622793007 = 0.05442649071548505\n",
      "field decay(t = 600.24): 0.0003704269461133881 / 0.21391676622793007 = 0.0017316405471401672\n",
      "field decay(t = 650.26): 2.407408397879035e-06 / 0.21391676622793007 = 1.1253949095854981e-05\n",
      "field decay(t = 700.28): 4.514705562622321e-09 / 0.21391676622793007 = 2.110496359042687e-08\n",
      "run 0 finished at t = 700.28 (35014 timesteps)\n",
      "harmonics:, 0.6309573444802007, 1.0, 22.671433283101095, 0.35168002847340085\n",
      "-----------\n",
      "Initializing structure...\n",
      "time for choose_chunkdivision = 7.6349e-05 s\n",
      "Working in 1D dimensions.\n",
      "Computational cell is 0 x 0 x 100 with resolution 25\n",
      "time for set_epsilon = 0.000514033 s\n",
      "-----------\n",
      "field decay(t = 100.04): 5.34506997399672e-12 / 5.34506997399672e-12 = 1.0\n",
      "field decay(t = 150.06): 1.016943844414871e-08 / 1.016943844414871e-08 = 1.0\n",
      "field decay(t = 200.08): 4.649396296768605e-06 / 4.649396296768605e-06 = 1.0\n",
      "field decay(t = 250.1): 0.000526586574504257 / 0.000526586574504257 = 1.0\n",
      "field decay(t = 300.12): 0.012482616165581575 / 0.012482616165581575 = 1.0\n",
      "field decay(t = 350.14): 0.0767563005883142 / 0.0767563005883142 = 1.0\n",
      "field decay(t = 400.16): 0.18425111874447933 / 0.18425111874447933 = 1.0\n",
      "field decay(t = 450.18): 0.2061127596772555 / 0.2061127596772555 = 1.0\n",
      "field decay(t = 500.2): 0.17353357688171156 / 0.2061127596772555 = 0.8419351482821418\n",
      "field decay(t = 550.22): 0.012903286335997976 / 0.2061127596772555 = 0.06260304483915874\n",
      "field decay(t = 600.24): 0.00037570222684037575 / 0.2061127596772555 = 0.0018227994590372485\n",
      "field decay(t = 650.26): 2.5596563674296393e-06 / 0.2061127596772555 = 1.241871862488141e-05\n",
      "field decay(t = 700.28): 5.0886534995752135e-09 / 0.2061127596772555 = 2.4688687432759386e-08\n",
      "run 0 finished at t = 700.28 (35014 timesteps)\n",
      "harmonics:, 1.0000000000000122, 1.0, 9.438561367499654, 0.12758165549209102\n"
     ]
    }
   ],
   "source": [
    "logk = np.arange(-6.0, 0.2, 0.2)\n",
    "first_order = np.zeros(len(logk))\n",
    "third_order = np.zeros(len(logk))\n",
    "for i, lk in enumerate(logk):\n",
    "    first_order[i], third_order[i] = third_harmonic_generation(\n",
    "        10**lk, flux_spectrum=False\n",
    "    )"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We divide the transmitted power at all values of $\\chi^{(3)}$ by the transmitted power at $\\omega$ for the smallest $\\chi^{(3)}$ of $10^{-6}$ which is 225.25726603587043. We then plot the fractional transmission at $\\omega$ and $3\\omega$ as a function of $\\chi^{(3)}$ on a log-log scale."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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cI4dO0Z0dDSbNm1K3ufZs2cJDw/3ep+eWOPhpT///JOnn36a6dOnU758edauXcsdd9wR7LCMCTlvecjJHhMTk+4PsfSW+/IFm9YVV1xBYmIi4NzDTPLmm28SERHBli1bSExMpECBAl7tr1ChQsmvO3XqxGeffUbVqlWZPn16wIdZSJnqKG/evFy4cAFV5fHHH+fVVy/JH5slds/DC5988gmRkZF8+OGHDB48mM2bN1vDYUwIueuuu1i0aBFnz54lJiaGL7/8MnlZ6dKl2bRpEwCfffZZcvmpU6e47rrryJMnDx9++GHy5aO77rqLOXPmkJCQwJEjR1i1apXH48bExHDdddcRHx9PVIqB2AsXLuy2wStfvjzHjh3j+++/T97+woULWap7w4YNmT9/fvK9mT/++IMD7gZM8ZE1Huk4evQow4YN46GHHuL//u//2LBhA6NHj/b6F4gxJmeoUaMGrVq1omrVqtx3333UqFEjedlTTz3FhAkTqF69OidPnkwu79WrF//973+pWrUqP/30U/IZRcuWLbn55puJjIzkscce47bbbvN43BEjRlC3bl1uv/12KlSokFzeunVrXn/9dapXr84vv/ySXJ4/f36mTZtG3759qVq1Kvfcc0+qs6HMqFChAiNHjqRp06bceuut3HPPPRw5ciRL+wS7bJWuzz77jG+++YbRo0czaNAg8uXLF+yQjDGZ9MwzzyR3iR08eHBy+S233MLWrVsB55f+66+/TkxMDDfffHNyOcBrr70GgIjw3nvvuT3G/v37U51R9OzZk549e16yXr169VI95zF9+vTk1zVr1uTbb79Nnk97hlKmTBm2b3dG9m7YsGFygtWXX3451bpJ68TExPDII4/wyCOPuI05s6zxSEf37t0pWrSojSZmjDFpWOORjjx58nD99dcHOwxjjJ+98MIL1ksyi+yehzEmW2iAh7w2mZeZ98YaD2NMwBUoUICTJ09aA5IDqSonT570uSOQXbYyxgRcyZIlOXToECdOnPC4zrlz59L9AktvubtlactSzmf0OqNY0uPNtr7UxZd5d/F7E0+BAgUoWbJk+hVLwxoPY0zA5cuXjxtvvDHddaKjo6levXqmlrtblrYs5XxGrzOKJSv18LUuvsy7iz8rdUmPXbYyxhjjM2s8jDHG+MwaD2OMMT6Ty6H3g4icAFImcykGnHIzn7I86fU1wO9ZOHzaY/myjrtyT7F78zordclKPTwt87UuKcuCVRdf65F2PpTrEsjPV3pxerM8J9XF338rwfx8lVHVa90uUdXLbgImuptPWZ6ibKM/j+XLOu7KPcXuzeus1CUr9fBXXdKUBaUuvtYjN9UlkJ8vb+oS6M+Xv+ri77+VYH6+0psu18tWX3iY/yKddfx1LF/WcVfuKXZvX2dWVurhaZmvdQnF9yTtfCjXJZCfL2/2E+jPlzcxeMPffyvB/Hx5dFlctsoKEdmoqrWCHYc/WF1yptxSl9xSD7C6eONyPfPwxcRgB+BHVpecKbfUJbfUA6wuGbIzD2OMMT6zMw9jjDE+s8bDGGOMz6zxMMYY4zNrPLJARPKIyCgReVdEHg92PFkhIg1FZK2IvC8iDYMdT1aISCER2SgizYMdS1aISEXX+zFfRC4dyzSEiEgLEZkkInNEpGmw48kKESknIlNEZH6wY/GV62/jv673okNW9nXZNh4iMlVEjovI9jTl94rIbhHZKyLPZ7CbB4GSQDxwKFCxZsRPdVEgFihAkOrip3oAPAfMDUyU3vFHXVR1l6r2ANoAtwcy3vT4qS6fqWo3oAfg38G0feCnuuxT1S6BjdR7PtapFTDf9V48kKUDB+LJw1CYgLuAGsD2FGV5gV+AckB+YAsQCVQBFqaZwoHngSdd284P8brkcW0XAUSFcD3uAdoCnYDmofyeuLZ5APgSaB/qdXFt9wZQI5fUJWh/81mo02CgmmudWVk57mU7noeqrhGRsmmK6wB7VXUfgIjMBh5U1VeBSy6BiMgh4LxrNiGA4abLH3VJ4U8gLCCBZsBP70lDoBDOH8pZEVmsqomBjNsdf70nqroAWCAii4BZAQzZIz+9LwKMAb5U1R8CHLJHfv5byRF8qRPOVYWSwGayeOXpsm08PLgB+DXF/CGgbjrrfwK8KyJ3AmsCGVgm+FQXEWkF/BO4CngvoJH5xqd6qOoQABHpBPwejIYjHb6+Jw1xLjOEAYsDGVgm+Pq30hdoAhQTkZtU9f1ABucjX9+XEsAooLqIDHY1MjmNpzq9A7wnIveTxRQm1nhkgaqeAXLMtc+sUNVPcBrDXEFVpwc7hqxS1WggOshh+IWqvoPzxRXyVPUkzr2bkKOqfwNP+GNfl+0Ncw8OA6VSzJd0lYWi3FKX3FIPsLrkVLmpLkkCXidrPFL7HrhZRG4Ukfw4N14XBDmmzMotdckt9QCrS06Vm+qSJPB1CnZPgSD2UPgIOMLFbrZdXOXNgJ9xeioMCXacl1Ndcks9rC45d8pNdQl2nSwxojHGGJ/ZZStjjDE+s8bDGGOMz6zxMMYY4zNrPIwxxvjMGg9jjDE+s8bDGGOMz6zxMMYY4zNrPIwxxvjMGg9jgkRE3hKRK92NGCgiNUUkJJPvmcuDNR7GBIErrTeqekbdjBioqpuAO4IYojHpssbDmOC4DdiZNCMiDwCLSD1uxzkRicjuwIzxhjUexgSQiBQSkcMiMto1X1tENgNFgb+S1lPVBap6H9AhxeZ/utYzJsexwaCMCSBV/VtEbgU2ishIYCrQEcgHNIJ0Rwy8ATiYnfEa4y1rPIwJMFU9KSJngCnAh6q62TWmdxfX8mjSjBgoIoWB06oal83hGuMVS8luTDYQkY+A/wPuVte46iJyJ7BJneGM065/C5Cgqr9kb6TGeMcaD2MCTESuBbYBI1X1vWDHY4w/WONhTICJyAIgFvhbVbsFOx5j/MF6WxkTQCLyJHAWeA6ne64xuYKdeRgTICJyM/AFcJuq/ikiywBV1aZBDs2YLLPGwxhjjM/sspUxxhifWeNhjDHGZ9Z4GGOM8Zk1HsYYY3xmjYcxxhifWeNhjDHGZ9Z4GGOM8Zk1HsYYY3xmjYcxxhif/T+rpxHk7Q3p/wAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "input_flux = first_order[0]\n",
    "fig, ax = plt.subplots()\n",
    "ax.loglog(10**logk, first_order / input_flux, \"ro-\", label=r\"$\\omega$\")\n",
    "ax.loglog(10**logk, third_order / input_flux, \"bo-\", label=r\"$3\\omega$\")\n",
    "ax.loglog(10**logk, (10**logk) ** 2, \"k-\", label=\"quadratic line\")\n",
    "ax.set_xlabel(r\"$\\chi^{(3)}$\")\n",
    "ax.set_ylabel(\"transmission / incident power\")\n",
    "ax.legend()\n",
    "ax.grid(True,'both')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As can be shown from coupled-mode theory or, equivalently, follows from [Fermi's golden rule](https://en.wikipedia.org/wiki/Fermi's_golden_rule), the third-harmonic power must go as the *square* of $\\chi^{(3)}$ as long as the nonlinearity is weak (i.e. in the first Born approximation limit, where the $\\omega$ source is not depleted significantly). This is precisely what we see on the above graph, where the slope of the black line indicates an exact quadratic dependence, for comparison. Once the nonlinearity becomes strong enough, however, this approximation is no longer valid and the dependence is complicated.\n",
    "\n",
    "Finally, we note that increasing the current amplitude by a factor of $F$ or the Kerr susceptibility $\\chi^{(3)}$ by a factor $F^3$ should generate the *same* third-harmonic power in the *weak* nonlinearity approximation. And indeed, we see:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "```\n",
    "harmonics:, 0.001, 1.0, 225.2091048223644, 0.021498041565849526\n",
    "```"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "```\n",
    "harmonics:, 1e-06, 10.0, 22525.588597389557, 0.021791784143189268\n",
    "```"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "which have third-harmonic powers differing by about 1% (last column)."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.10"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
